Multichannel acoustic echo reduction

ABSTRACT

A multichannel acoustic echo reduction system is described herein. The system includes an acoustic echo canceller (AEC) component having a fixed filter for each respective combination of loudspeaker and microphone signals and having an adaptive filter for each microphone signal. For each microphone signal, the AEC component modifies the microphone signal to reduce contributions from the outputs of the loudspeakers based at least in part on the respective adaptive filter associated with the microphone signal and the set of fixed filters associated with the respective microphone signal.

RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.12/141,941, filed on Jun. 19, 2008, and entitled “MULTICHANNEL ACOUSTICECHO REDUCTION”, the entirety of which is incorporated herein byreference.

BACKGROUND

Microphones are used in many devices to capture one or more humanvoices. Examples of such devices include speakerphones, hands-freemobile phones, VOIP systems, voice controlled devices/software employingspeech recognition, and other types of systems which use and/orcommunicate human voices captured using a microphone.

Such devices often include a loudspeaker which outputs audible soundsgenerated from or communicated to the device that includes themicrophone. For example, a speakerphone may include a loudspeaker whichoutputs the voices and other noises communicated from a phone or anotherspeakerphone located in a remote far-end room.

Audible sounds being output by a loudspeaker in a near-end roomspeakerphone may be captured by the microphone and cause negativeaudible characteristics for the device, such as a delayed echo, feedbackgeneration, and reverberation which degrades any spoken voices intendedto be captured by the microphone of the speakerphone. To overcome suchnegative audible characteristics, acoustic echo reduction may beemployed to estimate what portion of the signal sent to the loudspeakeris captured by the microphone, and to subsequently remove the estimatedportion of the signal from the actual signal captured by the microphoneto leave substantially only the spoken voices and/or other near-end roomsounds captured by the microphone.

Many devices and systems that require acoustic echo reduction, however,are evolving to include multichannel (e.g., stereo and/or surroundsound) loud speakers. Multiple loudspeakers increase the difficulty ofeffectively removing portions of the signals detected by one or moremicrophones contributed by the multiple loudspeakers from a receivedsignal. Many echo reduction systems may not scale sufficiently toeffectively carry out echo reduction on a multichannel loudspeakersystem.

SUMMARY

The following is a brief summary of subject matter that is described ingreater detail herein. This summary is not intended to be limiting as tothe scope of the claims.

Described herein are various technologies relating to multichannelacoustic echo reduction. An example multichannel acoustic echo reductionsystem may be employed in a device having both a plurality ofloudspeaker channels (e.g., stereo or surround sound loudspeakers) and amicrophone array having a plurality of microphones integrated therein.

The system may include an acoustic echo canceller (AEC) component thatfilters each signal from the respective microphones based at least inpart on the audio signals being outputted through the loudspeakers. Foreach different combination of microphones and loudspeakers in thedevice, the AEC component may have a corresponding fixed filter capableof filtering the signal associated with its corresponding loudspeaker.For each set of fixed filters associated with a microphone, the systemmay include one adaptive filter that produces an output based at leastin part on a combination of the outputs from the associated fixedfilters and the signal from the associated microphone. The examplesystem subtracts the output from each adaptive filter from therespective signal acquired by the microphone associated with theadaptive filter, to produce a filtered output for each microphone.

Before the system operates and/or subsequently to operation of thesystem, the fixed filters may be calibrated to be capable of producingoutputs corresponding to an estimate of what portions of the pluralityof signals sent to the loudspeakers will be captured by each of themicrophones. Such calibration may be carried out by a calibrationcomponent that provides chirps or other acoustic informationsequentially at each loudspeaker to analyze the contribution eachloudspeaker provides to each microphone signal. The calibrationcomponent may determine coefficients from information provided by thechirps for use in operating the fixed filters.

In the example system, the adaptive filters may modify the outputs ofthe fixed filters to continuously account for acoustic changes in theenvironment including the loudspeakers and microphones after the fixedfilters were initially calibrated (e.g., movement of people, opening andclosing of doors, . . . ). The example system may also include a trackercomponent that is operative to determine changes in the relativepositions of the speakers and/or microphones. The tracker component maytrigger the calibration component to recalibrate the fixed filters whena sufficient change in the positions of the speakers and/or microphonesis detected.

The system may also include a beamformer that uses the plurality offiltered outputs from the adaptive filters to output a combined filteredsignal substantially focused on the portions of the acoustic informationcorresponding to a currently or dominant speaking voice. The output fromthe beamformer may then be further filtered by an acoustic echosuppression (AES) component to further minimize residual echo and/ornoise remaining after the AEC and beamformer components have filteredthe microphone signals.

The output of the AES component may correspond to a single channelsignal substantially focused on speaking voices in which backgroundsounds initially provided by the device's multiple loudspeakers havebeen subtracted out of the signal. In devices for use intelecommunications (e.g., speakerphones) the signal may be communicatedto a remote phone or speakerphone. In devices that are voice controlled,the signal may undergo speech recognition to distinguish differentcommands or other verbal information used in the operation of thedevice.

Other aspects will be appreciated upon reading and understanding theattached figures and description.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram of an example multichannel acousticecho reduction system.

FIG. 2 is a functional block diagram of an example system, illustratingan example structure for an acoustic echo canceller component.

FIG. 3 is a functional block diagram of an example system, illustratinga calibration component and a tracking component.

FIG. 4 is a functional block diagram of an example system, illustratinga beamformer component.

FIG. 5 is a functional block diagram of an example system, illustratingan acoustic suppression component.

FIG. 6 is a functional block diagram of an example system, illustratinga telecommunication system that includes speakerphones with an examplemultichannel acoustic echo reduction system.

FIG. 7 is a functional block diagram of an example system, illustratinga multimedia device with an example multichannel acoustic echo reductionsystem.

FIG. 8 is a functional block diagram of an example system, illustratinga voice controlled system with an example multichannel acoustic echoreduction system.

FIG. 9 is a flow diagram that illustrates a first portion of an examplemethodology for reduction of echo in a device that has multipleloudspeakers.

FIG. 10 is a flow diagram that illustrates a second portion of theexample methodology for reduction of echo in a device that has multipleloudspeakers.

FIG. 11 is an example computing system.

DETAILED DESCRIPTION

Various technologies pertaining to reducing acoustic echo and noisecaptured by a microphone array in a multichannel loudspeaker device willnow be described with reference to the drawings, where like referencenumerals represent like elements throughout. In addition, severalfunctional block diagrams of example systems are illustrated anddescribed herein for purposes of explanation; however, it is to beunderstood that functionality that is described as being carried out bycertain system components may be performed by multiple components.Similarly, for instance, a component may be configured to performfunctionality that is described as being carried out by multiplecomponents.

With reference to FIG. 1, an example multichannel acoustic echoreduction system 100 is illustrated that facilitates reduction of echoand noise in microphone signals. The example system 100 may be used intelecommunication systems (e.g., speakerphones), multimedia devices,and/or voice controlled devices and software. Examples of such devicesemploying the example system 100 will be described in more detail belowwith respect to FIGS. 6-8.

The example system 100 may include a signal receiving component 102 thatreceives a plurality of microphone signals 104, 105, 106, 107 and alesser plurality of loudspeaker signals 108, 110. The plurality ofloudspeaker signals drive a plurality of respective loudspeakersincluded with the particular device that employs the examplemultichannel acoustic echo reduction system 100. The plurality ofmicrophone signals 104-107 are generated by a plurality of respectivemicrophones included with the particular device that employs the examplesystem. Such microphone signals typically include acoustic informationcaptured from outputs of the loudspeakers as well as other sounds suchas speaking voices and other noises in a near-end room that includes thedevice employing the example system.

The example system also includes an acoustic echo canceller (AEC)component 112 that operates to filter the microphone signals. The AECcomponent 112 has a plurality of fixed filters 114 and a lesserplurality of adaptive filters 116. In this example system 100, the AECmay include a fixed filter for each respective combination ofloudspeaker and microphone signals. In addition, the AEC may alsoinclude an adaptive filter for each microphone signal. The AEC component112 modifies each respective microphone signal to reduce contributionsfrom the outputs of the loudspeakers based at least in part on therespective adaptive filter associated with the respective microphonesignal and the set of fixed filters associated with the respectivemicrophone signal.

In this example system, the fixed filters 114 may be calibrated for theparticular spatial arrangement of loudspeakers and microphones toproduce outputs corresponding to an estimate of the portions of theplurality of signals sent to the loudspeakers that will be captured byeach of the microphones. The adaptive filters 116 modify the outputs ofthe fixed filters to continuously account for acoustic changes in thenear-end room environment including the loudspeakers and microphonesafter the fixed filters where initially calibrated. Such changes mayinclude movement of people and/or objects in the room in which soundwaves travel between the loudspeakers and microphones.

FIG. 2 illustrates an example structure 200 for the AEC component 112.FIG. 2 also illustrates examples of a plurality of loudspeakers 202 thatare driven by the loudspeaker signals 108-110. In addition, FIG. 2illustrates examples of a plurality of microphones 204 that captureoutputs from the loudspeakers 202 as well as other sounds such as humanspeech and noises.

The example structure 200 may be employed in software or hardware,depending on the performance requirements for the device using thesystem. In an example system implemented in software, the AEC component112 may generate an appropriate number of instances of the fixed filtersand adaptive filters dynamically based on the detected and/or configurednumber of microphones and loudspeakers used in the device.

As discussed previously, the number of fixed and adaptive filters isbased on the number of loudspeaker and microphone signals. A system thatreceives a quantity of L loudspeaker signals (one for each loudspeaker)and a quantity of M microphone signals (one for each microphone), willhave a quantity of L×M fixed filters. For example, a system receivingtwo stereo loudspeaker signals and four microphone signals will have anAEC component with eight (e.g., 2×4) fixed filters. In addition, such anexample system will have four adaptive filters (one for each microphonesignal).

In addition, although FIG. 2 depicts four microphones 204, to simplifythe drawing, only two microphone signals (104 and 106) are shown out ofthe four microphones 204 depicted (i.e. microphone signals 105 and 107of FIG. 1 are not shown).

Thus, in FIG. 2 only two adaptive filters (e.g., h_(one) and h_(m)) areshown, which correspond respectively to the two microphone signals 104and 106. Also, only four fixed filters are shown (h_(one one),h_(l one), h_(one m), and h_(lm)), which respectively correspond to thedifferent combinations of loudspeaker signals 108 and 110 and microphonesignals 104 and 106 that are shown. It is to be understood that in animplementation of the described example system, corresponding sets offixed filters and individual adaptive filters would be associated withthe two microphone signals 105 and 107 that are not shown. Also, it tobe understood that alternative examples may have one or more microphonesand associated microphone signals depending on the acoustic and/orperformance characteristics desired for the system. In addition, as usedherein the subscript l refers to a given loudspeaker signal and rangesin value from l to L. Similarly, the subscript m refers to a givenmicrophone signal and ranges in value from l to M.

Each respective fixed filter h_(one one), h_(l one), h_(one m), andh_(lm) generates a respective output 206, 208, 210, 212 based at leastin part on the particular loudspeaker signal 108, 110 associated witheach respective fixed filter. Also, as will be discussed in more detailbelow, each fixed filter operates on an associated loudspeaker signalbased on coefficients configured for the respective fixed filter withrespect to one of the microphone signals.

In the example system, outputs from each subset of fixed filterscalibrated with respect to a common microphone signal are combined(e.g., added together) to form a combined output 214, 216. For exampleas shown in FIG. 2, outputs 206, 208 from fixed filters h_(one one) andh_(l one) are combined to form combined output 214; and outputs 210, 212from fixed filters h_(one m), and h_(lm) are combined to form combinedoutput 216. Then the adaptive filter associated with the respectivesubset of fixed filters generates an output 218, 220 based at least inpart on the combined outputs from the fixed filters associated with therespective microphone signal and configuration values associated withthe adaptive filter. For example, as shown in FIG. 2, the adaptivefilter h_(one) generates output 218 based at least in part on thecombined output 214 of the fixed filters h_(one one) and h_(l one)calibrated with respect to the microphone signal 104 and configurationvalues associated with the adaptive filter h_(one). Also, for example,the adaptive filter h_(m) generates output 220 based at least in part onthe combined output 216 of the fixed filters h_(one m) and h_(lm)calibrated with respect to the microphone signal 106 and configurationvalues associated with the adaptive filter h_(m).

The configuration values may be continually updated by the AEC component112 based at least in part on the respective microphone signalassociated with the adaptive filter and previous configuration valuesassociated with the respective adaptive filter. For example, as shown inFIG. 2, configuration values for adaptive filter h_(one) may be updatedbased at least in part on the microphone signal 104 and previousconfiguration values for the adaptive filter h_(one). Also, for example,configuration values for adaptive filter h_(m) may be updated based atleast in part on the microphone signal 106 and previous configurationvalues for the adaptive filter h_(m).

In this example structure 200, for each microphone signal 104, 106, theAEC component 112 respectively combines (e.g., subtracts) the respectiveoutputs 218, 220 from the respective associated adaptive filters h_(one)and h_(m) with the respective microphone signals 104, 106 to producerespective filtered microphone signals 222, 224. For example, as shownin FIG. 2, the output 218 from the adaptive filter h_(one) is subtractedfrom the associated microphone signal 104 to produce the filteredmicrophone signal 222. Similarly, the output 220 from the adaptivefilter h_(m) is subtracted from the associated microphone signal 106 toproduce the filtered microphone signal 224.

In the example system 100, for each microphone signal, the respectiveassociated adaptive filter includes a finite impulse response (FIR)filter with a predetermined length to generate an output correspondingto an approximation of a transfer function between the respectivemicrophone signal and the combination of the outputs from the fixedfilters associated with the respective microphone signal. In examples,the adaptive filters may employ adaptive echo canceller algorithms suchas LMS (least mean square), NLMS (normalized least mean square), and RLS(recursive least squares) or other echo canceller algorithms such asthose used in mono AEC systems. The arrangement of one adaptive filterper microphone in the example system limits the degrees of freedom forthe adaptation process, which thereby reduces the opportunity for theadaptive filter to converge on one of many undesirable solutions.

As mentioned previously, the fixed filters may be calibrated in view ofthe respective mutual positions of the microphones and speakers in thedevice that uses the example multichannel acoustic echo reductionsystem. Such calibration may be carried out initially before it is firstused. As a result, the fixed filters are initialized with an optimal orclose to optimal solution before the system starts operating.

In devices with a structurally fixed arrangement of speakers andmicrophones (e.g., a display monitor, car music system, or speakerphone,with built in stereo/surround speakers and microphones), the fixedfilters may be calibrated during manufacture of the device to producerespective sets of coefficients stored in a memory of the device forlater use with operating each respective fixed filter. In devices withindividually movable speakers and/or microphones, the system may becapable of calibrating the fixed filters each time the system isstarted.

FIG. 3 illustrates an example system 300 that includes a calibrationcomponent 302 that provides coefficients 304 that configure each of thefixed filters 114. Upon initialization of the system 300 (and optionallysubsequently) the calibration component 302 may determine thecoefficients by sequentially including a calibration signal in eachloudspeaker signal, which calibration signal causes the respectiveloudspeakers to sequentially output chirps or other predeterminedsounds.

The calibration component 302 can determine the coefficients for eachfixed filter based at least in part on the corresponding acousticinformation captured by the microphone signals during the time periodsfor which the calibration signals are included in the loudspeakersignals. The time sequences from each microphone and loudspeaker duringthe calibration process are converted by the calibration component 302to the frequency domain for each frequency bin, resulting in inputsequences X_(m)(k) and Z_(l)(k). The calibration component 302 may beconfigured to ensure that the number of frames in the chirp signal islarger than the number of taps in a frequency domain filter P for thefixed filters. Then for each microphone signal, the calibrationcomponent 302 can solve an overloaded system of complex equationscorresponding to:

H _(m) Z ^((n)) =X _(m) ^((n))   (1)

where H_(m)=[H_(m1), H_(m2) . . . , H_(mL)], and Z=[Z₁, Z₂, . . . ,Z_(L)]. Each H_(ml) is a P-tap filter for the transfer function betweenthe m-th microphone and the l-th loudspeaker for the k-th frequency bin(omitted for simplicity).

Each Z_(l)=[Z_(l) ^((n)), Z_(l) ^((n-1)), . . . , Z_(l) ^((n-P+1))]^(T)is a vector-column, containing the last P values of the speaker signalsZ_(l) ^((n))=[Z_(l) ^((n-1)), . . . , Z_(l) ^((n-P+1))]^(T). Thisdescribed overloaded system of complex equations may be solved for eachfrequency bin and for each microphone signal. In an example, thecalibration component 302 may use an MMSE (minimum mean square error)algorithm to find the solution for the initial coefficients used toconfigure each of the fixed filters.

Although the example configuration component 302 has been described asusing sequential calibration signals to determine coefficients for thefixed filters, it is to be understood that in alterative examples, thecalibration component may use other procedures to determine thecoefficients, such as using prior information about the mutual positionsof the loudspeakers and microphones. For example in a device such as acomputer monitor, the geometry for the loudspeaker and microphonepositions may be permanently fixed therein. The calibration componentmay determine the coefficients for the fixed filters based on this knowngeometry and a sound delay detected between the output of loudspeakersignals and the capture of such signals via the microphones.

Once the initial coefficients for the fixed filter banks H_(lm) andadaptive filter banks H_(m) are calculated for each microphone signaland frequency bin, the output signal from the AEC component 112 (FIG. 1)in the absence of further speech or noise inputs to the microphones maycorrespond to:

Y _(m) ^((n))=(Σ_(l−1) ^(L) H′ _(lm) Z _(l) ^((n)))−(Σ_(l−1) ^(L) H′_(lm) Z _(l) ^((n)))H _(m).   (2)

Here H _(lm) corresponds to the actual transfer function between thecorresponding loudspeaker and microphone. As immediately after thecalibration H_(lm)≈ H _(lm) (with some calibration errors) and H_(m)=1,significant echo suppression may be achieved. At some later moment dueto some movements in the room adjacent the loudspeakers and microphones,the actual transfer function may change to H _(lm)+Δ H _(lm) which canresult in the output signal from AEC component 112 corresponding to:

Y _(m) ^((n))=(Σ_(l−1) ^(L) H _(lm) Z _(l) ^((n)))−(Σ_(l=1) ^(L) H′_(lm) Z _(l) ^((n)))+(Σ_(l=1) ^(L) Δ H′ _(lm) Z _(l) ^((n)))−(Σ_(l−1)^(L) H′ _(lm) Z _(l) ^((n)))(H _(m)−1).   (3)

Here the difference of the first two terms will be approximately zero inequation (3) due to the initial calibration, and after merging the twosums, the resulting output signal corresponds to:

Y _(m) ^((n))=Σ_(l−1) ^(L)(Δ H′ _(lm) −H′ _(lm)(H _(m)−1))Z _(l) ^((n)).  (4)

To substantially minimize echo, the adaptive filter can be estimatedsuch that the H_(m) minimize:

E{∥Σ _(l=1) ^(L)(Δ H′ _(lm) −H′ _(lm)(H _(m)−1))Z _(l) ^((n))∥²}  (5)

where E{.} is the statistical expectation operator. This indicates anMMSE solution to which the adaptive filter is capable of converging.

Changes in the acoustic properties in the near-end room may cause anincrease in the echo residual due to the approximate solution carried bythe adaptive filters. If the changes are due only to movement in theroom (e.g., moving people and the opening/or closing of a door), then ∥H _(lm)∥²>>∥Δ H _(lm)∥² and the non-compensated residual will have lowenergy.

In FIG. 4, an example system 400 that can facilitate suppression of theresidual is illustrated. The system 400 can include a beamformercomponent 402 that may be used to suppress the net residual from thecombined single channel output after the beamformer. In this example,the beamformer component 402 may produce a single output 404 (focused onthe currently dominant speaking voice) based at least in part on thefiltered outputs 222, 224 (e.g., the filtered microphone signals) of theAEC component 112. Thus in addition to extracting acoustic informationcorresponding to the current dominant speaking voice in the near-endroom, the beamformer component 402 may further improve the quality ofthe filtered signals by minimizing the residual echo left from the AECcomponent 112.

However, although residual echo may be suppressed by the beamformercomponent 402, the output 404 from the beamformer component 402 maycontinue to include a reverberation tail which typically remainsrelatively constant regardless of the beam switching carried out by thebeamformer component 402. Such a reverberation tail may be heavier thanusual in the case of surround sound loudspeakers in which at least twoof the loudspeakers (e.g., rear channels) may be relatively farther fromthe microphones than other loudspeakers (e.g., front and centerchannels) and this reverberation tail may still be loud enough todegrade the audio quality of the signals after the AEC component andbeamformer component.

With reference now to FIG. 5, an example system 500 that can be employedin connection with suppressing a reverberation tail is illustrated. Thesystem 500 may include an acoustic echo suppression (AES) component 506.Such an AES component may produce an output 508 which suppresses theenergy of the reverberation tail that remains in the output 404 of thebeamformer component 402. The AES component 506 may use an algorithmsuch as a Wiener gain, Ephraim and Malah, or other AES algorithms.

The system 500 may additionally include an estimator component 502 thatestimates the residual energy based on the original loudspeaker signals.The AES component 506 in this example may suppress the reverberationtail based at least in part on an estimate of the residual determined bythe estimator component 502. The estimate may be determined duringperiods when there is no near-end room speech. To determine whennear-end room speech is not being picked up by the microphones 204, theestimator component may include a voice activity detector component 504that detects the presence of speech in the output 404 of the beamformer(or a preceding output/signal from the microphones 204).

As discussed previously, the adaptive filters of the AEC component 112may account for small changes in the acoustic properties of the near-endroom such as caused by movement of people and objects. In addition theexample systems (such as systems 300, 400, 500 depicted in FIGS. 3-5)may be capable of monitoring the filtered microphone signals to detectchanges in individual loudspeaker volumes and/or changes in the relativepositions of the loudspeakers with respect to the microphones. Based onthe detected changes, the example system may be capable of adjusting thefixed filters without a need for a recalibration. In this regard,example systems may include a tracking component 510. Such a trackingcomponent may monitor the filtered microphone signals 222, 224 of theAEC component 112 for an indication that the relative positions betweenthe microphones and/or loudspeakers have changed and cause the fixedfilters to be adjusted accordingly. When necessary, the example trackingcomponent 510 may also trigger the calibration component 302 tore-calibrate the fixed filters and re-initialize the adaptive filters.In examples with a tracking component 510, the number of microphones istypically greater than the number of loudspeakers (e.g. M>L) tofacilitate accurate tracking of relative movement of the microphones andloudspeakers.

FIG. 6 illustrates an example telecommunication system 600 employing anexample of a multichannel acoustic echo reduction system (e.g., thesystem 100) in speakerphones 602 and 604, respectively located inseparate and remote rooms 603, 605. In this example, the speakerphones602 and 604 include respective stereo loudspeakers 606. Suchloudspeakers may be built into the housing of the speakerphone. However,such loudspeakers may alternatively correspond to movable satellitespeakers that may be positioned at different locations away from thebase of the speakerphone.

In addition, in this example, each speakerphone may include more thantwo microphones 608 (e.g., four microphones) spaced apart in thespeakerphone housing. However, such microphones may alternatively beintegrated into a movable microphone array that includes the microphonesin a spaced apart arrangement in a common housing that is separate fromthe base of the speakerphone. In such an example with four microphonesand two speakers, the AEC component 112 can include eight fixed filters(e.g., 2 speakers×4 microphones) and may include four adaptive filters(one for each of the 4 microphones).

FIG. 7 illustrates an example system 700 employing an example of themultichannel echo reduction system 100 with loudspeakers 702 configuredin a surround sound arrangement (e.g., 5.1., 7.1, etc. channels). Herethe example system 700 may include a multimedia device 704 such as a PC,a home theater system, a vehicle based entertainment system, or otherdevice with multichannel audio. Also, the multimedia device 704 maycorrespond to a higher end speakerphone system configured for example aspart of a video conferencing system. In FIG. 7, a five loudspeakersurround sound system is shown in which a subwoofer is omitted. Thesystem may include a plurality of microphones 706 incorporated into amicrophone array with eight (or more) spaced apart microphones. In suchan example with eight microphones and five speakers, the AEC component112 in the multichannel acoustic echo reduction system 100 for theexample system 700 will include 40 fixed filters (e.g., 5 speakers×8microphones) and will include eight adaptive filters (one for each ofthe 8 microphones).

FIG. 8 illustrates another example system 800 employing an example ofthe multichannel echo reduction system 100 with loudspeakers 202configured in a multichannel arrangement (e.g., stereo, surround soundarrangement). Here the example system 800 may include a voice controlledsystem 802 that uses the multichannel acoustic echo reduction system 100to capture commands and/or other speech from a user while outputtingmusic or other sounds through the surround sound speakers. Such a voicecontrolled system for example may include a software program executingon a PC or other device that uses a speech recognition component 804that determines words and/or commands from the speech included in theoutput signal of the multichannel acoustic echo reduction system 100.

With reference collectively to FIGS. 9 and 10, an example methodology isillustrated. While the example methodology is described as being aseries of acts that are performed in a sequence, it is to be understoodthat the methodology is not limited by the order of the sequence. Forinstance, some acts may occur in a different order than what isdescribed herein. In addition, an act may occur concurrently withanother act. Also, an act can correspond to inaction such as a timedelay. Furthermore, in some instances, not all acts may be required tobe implemented in a methodology described herein.

Moreover, the acts described herein may be computer-executableinstructions that can be implemented by one or more processors and/orstored on a computer-readable medium, media, or articles. Thecomputer-executable instructions may include a routine, a sub-routine,programs, a thread of execution, and/or the like. Still further, resultsof acts of the methodologies may be stored in a computer-readablemedium, displayed on a display device, and/or the like.

Now referring to FIG. 9, a first portion of an example methodology 900for reducing echo in a multichannel acoustic system is illustrated. Themethodology 900 starts at 902, and at 904 a quantity of L loudspeakersignals is received that drive a quantity of L respective loudspeakers.At 906, a quantity of M microphone signals are received that aregenerated by a quantity of M respective microphones.

In this example, at 908, an AEC generates a quantity of L×M fixedfilters and a quantity of M adaptive filters. Each fixed filter isassociated with a different combination of one microphone signal and oneloudspeaker signal. Also, each adaptive filter is associated with arespective microphone signal.

At 910, a calibration signal (e.g., a chirp) is sequentially included ineach loudspeaker signal. At 912, coefficients are determined thatconfigure each fixed filter based at least in part on the microphonesignals resulting from the calibration signals (i.e., the microphonesignals received during time periods for which the calibration signalsare included in the loudspeaker signals). At 914, each fixed filterproduces an output based at least in part on the respective associatedloudspeaker signal and the coefficients configured for the respectivefixed filter.

Referring to FIG. 10, a further portion of the example methodology 900is illustrated, continuing at 916. In this portion of the methodology at918, for each microphone signal, the respective associated adaptivefilter produces an output based at least in part on a combination of theoutputs from the fixed filters associated with the respective microphonesignal and updated configuration values associated with the respectiveadaptive filter. The AEC component may continually update each adaptivefilter with new configuration values based at least in part on themicrophone signal associated with the adaptive filter and previousconfiguration values associated with the adaptive filter. At 920, foreach microphone signal, the output from the respective associatedadaptive filter is combined with the respective microphone signal toproduce a respective filtered microphone signal in which contributionsfrom the outputs of the loudspeakers are reduced.

At 922, a beamformer component produces a filtered output based at leastin part on the filtered microphone signals produced by the adaptivefilters. Also, at 924, an AES component produces a filtered output basedat least in part on the filtered output produced by the beamformercomponent. The methodology 900 completes at 926.

Now referring to FIG. 11, a high-level illustration of an examplecomputing device 1100 that can be used in accordance with the systemsand methodologies described herein is depicted. For instance, thecomputing device 1100 may be used in a system that reduces echo in amultichannel acoustic system.

The computing device 1100 includes at least one processor 1102 thatexecutes instructions that are stored in a memory 1104. The instructionsmay be, for instance, instructions for implementing functionalitydescribed as being carried out by one or more components discussed aboveor instructions for implementing one or more of the methods describedabove. The processor 1102 may access the memory 1104 by way of a systembus 1106. In addition to storing executable instructions, the memory1104 may also store audio signals, fixed filters, adaptive filters, etc.

The computing device 1100 additionally includes a data store 1108 thatis accessible by the processor 1102 by way of the system bus 1106. Thedata store 1108 may include executable instructions, adaptive filters,fixed filters, audio files, chirp signals, etc. The computing device1100 also includes an input interface 1110 that allows external devicesto communicate with the computing device 1100. For instance, the inputinterface 1110 may be used to receive instructions from an externalcomputer device, receive voice commands from a user, etc. The computingdevice 1100 also includes an output interface 1112 that interfaces thecomputing device 1100 with one or more external devices. For example,the computing device 1100 may transmit data to a personal computer byway of the output interface 1112.

Additionally, while illustrated as a single system, it is to beunderstood that the computing device 1100 may be a distributed system.Thus, for instance, several devices may be in communication by way of anetwork connection and may collectively perform tasks described as beingperformed by the computing device 1100.

As used herein, the terms “component” and “system” are intended toencompass hardware, software, or a combination of hardware and software.Thus, for example, a system or component may be a process, a processexecuting on a processor, or a processor. Additionally, a component orsystem may be localized on a single device or distributed across severaldevices.

It is noted that several examples have been provided for purposes ofexplanation. These examples are not to be construed as limiting thehereto-appended claims. Additionally, it may be recognized that theexamples provided herein may be permutated while still falling under thescope of the claims.

What is claimed is:
 1. A method executed by a processor of a computingdevice, the method comprising: transmitting a first calibration signalto a first speaker, the first calibration signal causing the firstspeaker to generate first output over a first time period; transmittinga second calibration signal to a second speaker, the second signalcausing the second speaker to generate second output over a second timeperiod that is non-overlapping with the first time period; receiving afirst microphone signal from a first microphone, the first microphonesignal corresponding to the first output from the first speaker over thefirst time period; receiving a second microphone signal from the firstmicrophone, the second microphone signal corresponding to the secondoutput from the second speaker over the second time period; computing afirst coefficient of a first fixed filter for the first microphone basedupon the first calibration signal and the first microphone signal;computing a second coefficient of a second fixed filter for the firstmicrophone based upon the second calibration signal and the secondmicrophone signal; and subsequent to computing the first coefficient ofthe first fixed filter and the second coefficient of the second fixedfilter, applying the first fixed filter and the second fixed filter toan acoustic signal captured by the first microphone.
 2. The method ofclaim 1, wherein applying the first fixed filter to the acoustic signalcauses a first filter output to be generated, wherein applying thesecond fixed filter to the acoustic signal causes a second filter outputto be generated, the method further comprising: combining the firstfilter output with the second filter output to generate combined output.3. The method of claim 2, further comprising applying a first adaptivefilter over the combined output to generate a first filtered output. 4.The method of claim 3, further comprising updating at least oneconfiguration value of the first adaptive filter based at least in partupon the acoustic signal captured by the first microphone and previousconfiguration values of the first adaptive filter.
 5. The method ofclaim 3, further comprising subtracting the first filtered output fromthe acoustic signal to generate a first filtered microphone signal. 6.The method of claim 1, wherein the transmitting of the first calibrationsignal and the transmitting of the second calibration signal isundertaken responsive to the computing device being started.
 7. Themethod of claim 1, wherein the acoustic signal comprises output from thefirst speaker, output from the second speaker, and audible output from ahuman, and wherein the first fixed filter and the second fixed filterfacilitate filtering of the output from the first speaker and the outputfrom the second speaker from the acoustic signal.
 8. The method of claim1, wherein the first output and the second output are respectiveacoustic signals.
 9. The method of claim 1, wherein the acoustic signalcomprises stereo output from the first speaker and the second speaker,and wherein the first fixed filter is employed to filter a firstcontribution of the first speaker to the stereo output and the secondfixed filter is employed to filter a second contribution of the secondspeaker to the stereo output.
 10. The method of claim 1, furthercomprising: receiving a third microphone signal from a secondmicrophone, the third microphone signal corresponding to the firstoutput from the first speaker over the first time period; receiving afourth microphone signal from the second microphone, the fourthmicrophone signal corresponding to the second output from the secondspeaker over the second time period; computing a third coefficient of athird fixed filter for the second microphone based upon the firstcalibration signal and the third microphone signal; computing a fourthcoefficient of a fourth fixed filter for the second microphone basedupon the second calibration signal and the fourth microphone signal; andsubsequent to computing the third coefficient of the third fixed filterand the fourth coefficient of the fourth fixed filter, applying thethird fixed filter and the fourth fixed filter to the acoustic signalcaptured by the second microphone.
 11. A method, comprising:transmitting a calibration signal to a first speaker and a secondspeaker to cause the first speaker to output a first speaker signal overa first time period and the second speaker to output a second speakersignal over a second time period, the second time period beingsubsequent to the first time period; receiving, from a microphone, afirst microphone signal for the first time period and a secondmicrophone signal for the second time period; and computing coefficientsfor a plurality of fixed filters for the microphone based at least inpart upon the calibration signal, the first microphone signal, and thesecond microphone signal, the plurality of fixed filters facilitatingfiltering of signals output by the first speaker and the second speakerfrom an acoustic signal captured by the microphone.
 12. The method ofclaim 11, the acoustic signal comprising spoken words from a human notincluded in the signals output by the first speaker and the secondspeaker, the method further comprising recognizing at least one word inthe spoken words from the human based upon the filtering of the signalsoutput by the first speaker and the second speaker.
 13. The method ofclaim 11, further comprising updating an adaptive filter based at leastin part upon the acoustic signal, wherein the adaptive filter is appliedto a combination of outputs of the plurality of fixed filters.
 14. Themethod of claim 13, further comprising applying a beamformer over outputof the adaptive filter.
 15. The method of claim 11 executed on acomputing device that is executing voice recognition software.
 16. Themethod of claim 11, further comprising computing multiple fixed filtersfor a plurality of microphones based upon respective signals receivedfrom the plurality of microphones during the first time period and thesecond time period.
 17. The method of claim 11, further comprisingupdating a configuration of an adaptive filter for the microphone basedat least in part upon the acoustic signal captured by the microphone.18. The method of claim 11 configured for execution by a speakerphone.19. The method of claim 11, wherein the first speaker signal and thesecond speaker signal are respective acoustic signals.
 20. A computingdevice that is configured to perform an action responsive to receipt ofa voice command, the computing device comprising a computer-readablemedium that includes instructions that, when executed by a processor ofthe computing device, causes the processor to perform acts comprising:receiving a plurality of loudspeaker signals that drive a plurality ofrespective loudspeakers; sequentially including a calibration signal ineach loudspeaker signal; receiving a microphone signal generated by themicrophone based at least in part upon outputs from the plurality ofloudspeakers; determining coefficients for a plurality of fixed filtersfor the microphone based at least in part upon the microphone signalreceived during time periods for which the calibration signals areincluded in the loudspeaker signals; and modifying the microphone signalto reduce contributions from the outputs of the plurality ofloudspeakers based at least in part upon the plurality of fixed filters.